#include "BulletCollision/Gimpact/btCompoundFromGimpact.h"
#ifdef __cplusplus
extern "C" {
#endif
btCompoundFromGimpactShape* bullet_NewbtCompoundFromGimpactShape(){
	btCompoundFromGimpactShape* wrap_out = new btCompoundFromGimpactShape();
	return wrap_out;
}

MyInternalTriangleIndexCallback* bullet_NewMyInternalTriangleIndexCallback(btCompoundShape* colShape,btGImpactMeshShape* meshShape,double depth){
	btCompoundShape * c_arg_colShape=(btCompoundShape *)(void*)(colShape);
	btGImpactMeshShape const * c_arg_meshShape=(btGImpactMeshShape const *)(void*)(meshShape);
	btScalar c_arg_depth=depth;
	MyInternalTriangleIndexCallback* wrap_out = new MyInternalTriangleIndexCallback(c_arg_colShape,c_arg_meshShape,c_arg_depth);
	return wrap_out;
}

btCompoundShape** bullet_MyInternalTriangleIndexCallback_GetFieldOfM_colShape(MyInternalTriangleIndexCallback* c_this){
	return (btCompoundShape**)(&c_this->m_colShape);
}

double bullet_MyInternalTriangleIndexCallback_GetFieldOfM_depth(MyInternalTriangleIndexCallback* c_this){
	return (double)(c_this->m_depth);
}

MyCallback* bullet_NewMyCallback(btVector3* from,btVector3* to,int ignorePart,int ignoreTriangleIndex){
	btVector3 const& c_arg_from=(btVector3 const&)(*from);
	btVector3 const& c_arg_to=(btVector3 const&)(*to);
	int c_arg_ignorePart=ignorePart;
	int c_arg_ignoreTriangleIndex=ignoreTriangleIndex;
	MyCallback* wrap_out = new MyCallback(c_arg_from,c_arg_to,c_arg_ignorePart,c_arg_ignoreTriangleIndex);
	return wrap_out;
}

int bullet_MyCallback_GetFieldOfM_ignorePart(MyCallback* c_this){
	return (int)(c_this->m_ignorePart);
}

int bullet_MyCallback_GetFieldOfM_ignoreTriangleIndex(MyCallback* c_this){
	return (int)(c_this->m_ignoreTriangleIndex);
}

#ifdef __cplusplus
}
#endif
